package com.xuecheng.content.convert;

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.vo.CourseAuditVO;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.content.entity.CourseBase;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;
/*
完成两个实体类属性值的映射赋值
 */

@Mapper
public interface CourseBaseConvert {


    // 将po转为dto数据
    CourseBaseConvert INSTANCE = Mappers.getMapper(CourseBaseConvert.class);

    //将dto转化为po
    @Mapping(source = "courseBaseId",target = "id")
    CourseBase dto2po(CourseBaseDTO courseBaseDTO);

    //将vo转换为dto
    CourseBaseDTO vo2dto(CourseBaseVO courseBaseVO);

    //课程审核

    CourseBaseDTO vo2dto(CourseAuditVO courseAuditVO);


    // 将po转为dto数据
    // source 属性是要转换源对象属性名称   target属性是要转换为目标对象的属性名称
    @Mapping(source = "id",target = "courseBaseId")
    CourseBaseDTO entity2dto(CourseBase courseBase);

    //集合的方法会依赖于单个数据转换的方法entitys2dtos-》entity2dto
    //Mapping注解是使用在单个数据转换方法上的，不是在集合方法上来使用
    List<CourseBaseDTO> entitys2dtos(List<CourseBase> courseBase);

}
